<script setup>
let props = defineProps(['name', 'age', 'message'])
props = defineProps({
  // 声明为必填项
  name: {
    type: String,
    required: true  // 必须传递该 prop
  },
  // 可选（默认就是非必填）
  age: {
    type: Number
    // 不设置 required 或设置为 false，均为非必填
  },
  hobbies: {
    type: Array,
    default: () => ['读书', '运动']  // 引用类型用函数返回
  },
  info: {
    type: Object,
    default: () => ({gender: '未知'})  // 对象默认值
  }
})
props = defineProps({
  age: {
    type: Number,         // 类型为数字
    required: false,      // 非必填（默认）
    default: 18,          // 默认值 18
    validator: (val) => { // 验证年龄范围
      return val >= 0 && val <= 120
    }
  }
})

</script>

<template>
  {{ age }}
</template>

<style scoped>

</style>